# _*_ coding: utf-8 _*_
"""
Time:     2024/9/14
Author:   2051261
File:     base_node.py
"""
from __future__ import annotations
import typing as t
from abc import ABC, abstractmethod

if t.TYPE_CHECKING:
    from extractor.flow.task_entry import Cache
    from extractor.flow.node_model.log_node import RecordLog


class BaseNodeFlow(ABC):
    @abstractmethod
    def __call__(self, obj: RecordLog, context: t.Dict[str, t.Any],
                 cache: Cache, record: t.DefaultDict, kwargs=None) -> \
            (t.Dict[str, t.Any] | t.Iterator[t.Dict[str, t.Any]] | None):
        pass
